Ftp
Used as a URL type with such commands as put and get to designate a file or directory on an FTP server.Syntax: ftp Examples: put URL "ftp://ftp.example.com/public/" into filesList get URL "ftp://john:passwd@ftp.example.net:2121/picture.jpg" put URL "ftp://files.example.org/file.txt" into URL "file:myFile.txt" put field "Upload" into URL "ftp://me:secret@ftp.example.net/file.txt" Use the ftp keyword to upload or download files to or from an Internet site. The URL scheme "ftp" indicates information located on an FTP server. An ftp URL consists of the following parts: 1. The string "ftp://" 2. An optional user name and password, separated by a colon (:) and followed by "@" 3. The name of the server 4. An optional port number preceded by a colon (:) 5. The name and location of a file or directory, starting with a slash (/) If you don't specify a port number, port 21 is used. (This is the standard port for FTP.) Most public FTP servers do not require a user name and password. For such servers, you need not specify any user name or password. If you don't specify a user name or password, LiveCode adds the "anonymous" user name and a dummy password automatically, in accordance with the conventions for public FTP servers. If your user name or password contains any of the characters ":", "@", "/", ".", or "|", use the URLEncode function to safely encode the user name or password before putting them into the URL. The following example constructs a URL for a user whose password contains the "@" character: put "jim" into userName put "jsmith@example.org" into userPassword put "ftp://" & userName & ":" & URLEncode(userPassword) \ & "@ftp.example.com/title.txt" into fileURLToGet get URL fileURLToGet Here are some examples of valid ftp URLs: ftp://ftp.example.org/directory/ -- list of files and folders in a directory ftp://ftp.example.org/directory/file.exe -- a file on the server ftp://user:password@ftp.example.org/myfile -- a file accessed by a password ftp://ftp.example.com:3992/somefile -- using a nonstandard FTP port An ftp URL is a container, and you can use the expression URL ftpURL in any statement where any other container type is used. When you get the value of an ftp URL, LiveCode downloads the URL from the server. (If you have previously cached the URL with the load command, it fetches the URL from the cache.) A URL that ends with a slash (/) designates a directory (rather than a file). An ftp URL to a directory evaluates to a listing of the directory's contents. To change the format of directory listings, use the libURLSetFTPListCommand command. FTP uploads and downloads that are performed using the ftp keyword are always transferred in binary mode: no character translation is performed. If you need to translate characters--for example, if you are uploading a text file to a different operating system and want to translate line endings--you must do so before uploading the file, since the put command will not do it for you. Downloading a URL by using it in an expression is a blocking operation: that is, the handler pauses until LiveCode is finished getting the URL. Since contacting a server may take some time due to network lag, URL operations may take long enough to be noticeable, so you may want to set the cursor to the watch or otherwise indicate a delay to the user. The following example shows how to set a flag in a global variable to prevent multiple downloads. The variable "downloadInProgress" is set to true while a download is going on, and back to false when the download concludes. If the user clicks the button again while the download is still going on, the handler simply beeps: on mouseUp global downloadInProgress if downloadInProgress then beep exit mouseUp end if put true into downloadInProgress -- about to start put URL (field "FTP URL to get") into field "Command Result" put false into downloadInProgress -- finished end mouseUp To send any FTP command to an FTP server, use the libURLftpCommand function. For technical information about URLs and the ftp URL scheme, see 1630(https://tools.ietf.org/html/rfc1630). The ftp keyword is part of the Internet library on desktop platforms. To ensure that the keyword works in a desktop standalone application, you must include this custom library when you create your standalone. In the Inclusions pane of the Standalone Application Settings window, make sure the "Internet" script library is selected. On iOS and Android, you can use the ftp keyword without the need for the Internet library. When specifying URLs for iOS and Android, you must use the appropriate form that conforms to 1630(https://tools.ietf.org/html/rfc1630). Changes: The ability to specify a port number was added in version 2.0. In previous versions, port 21 was always used for FTP transactions. See also: get (command),post (command),put (command),load (command),group (command),delete URL (command),libURLftpUpload (command),libURLDownloadToFile (command),function (control structure),result (function),files (function),libURLErrorData (function),value (function),library (library),delete URL (library),libURLSetFTPListCommand (library),Internet library (library),startup (message),openBackground (message),preOpenStack (message),openStack (message),preOpenCard (message), Category: networking